﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using vudu.Logica.Clases;
using vudu.EnlaceDatos.SqlServer;
using System.Security.Permissions;


namespace vudu.PaginasWeb.G4ArchivoPdf
{
    public partial class EliminarArchivoPdf : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string miRol = (string)Session["rol"];
            if (miRol != "Profesor")
            {
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
            }

            if (!Page.IsPostBack)
            {
                Profesor miProfesor = (Profesor)Session["Usuario"];
                nombreProfesor.Text = miProfesor.Nombre.ToString() + " " + miProfesor.Apellido.ToString();


                String ruta = "~/Archivo/" + miProfesor.Cedula.ToString() + miProfesor.Nombre + miProfesor.Apellido + ArchivoPdf_Principal.Materia.ToString() + ArchivoPdf_Principal.Seccion.ToString() + "/";

                DirectoryInfo prueba = new DirectoryInfo(MapPath(ruta));
                if (!prueba.Exists)
                {
                    DirectoryInfo hola = new DirectoryInfo(MapPath("~/Archivo/"));
                    string path2 = miProfesor.Cedula.ToString() + miProfesor.Nombre + miProfesor.Apellido + ArchivoPdf_Principal.Materia.ToString() + ArchivoPdf_Principal.Seccion.ToString() + "/";
                    hola.CreateSubdirectory(path2);
                }

            
                    CargarCategorias();
            }        
           
        }

        public void CargarCategorias()
        {
            SqlServerArchivoPdf sqlServerArchivo = new SqlServerArchivoPdf();
            Profesor profesor = (Profesor)Session["Usuario"];
            
            // Recorremos la lista de Archivos que pertenecen al profesor dependiendo a la seccion en la que se encuentre
            foreach (OperacionesPdf misArchivos in sqlServerArchivo.ConsultarCategoriaProfesorArchivoPdf(profesor,int.Parse(ArchivoPdf_Principal.Seccion)))
            {
                // Creamos un nuevo registro para DropDownList1
                ListItem registroLista = new ListItem();
                registroLista.Text = misArchivos.categoria;
                registroLista.Value = misArchivos.categoria;
                ComboBoxEliminar1.Items.Add(registroLista);

            }
        }

        protected void ComboBoxEliminar1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
            if (ComboBoxEliminar1.SelectedValue != "0")
            {

                ComboBoxEliminar2.Items.Clear();
                ListItem registroLista2 = new ListItem("- Selecciona -", "0");
                ComboBoxEliminar2.Items.Add(registroLista2);
                SqlServerArchivoPdf sqlServerArchivo = new SqlServerArchivoPdf();                
                Profesor profesor = (Profesor)Session["Usuario"];

                //Recorremos la lista de todos los archivos que posee el Profesor dependiendo de la seccion y la categoria que fue elegida
                foreach (OperacionesPdf archivo in sqlServerArchivo.ConsultarNombreArchivoPdf(profesor, int.Parse(ArchivoPdf_Principal.Seccion),ComboBoxEliminar1.SelectedValue))
                {
                    // Creamos un nuevo registro para DropDownList2
                    ListItem registroLista = new ListItem();
                    registroLista.Text = archivo.nombreArchivo;
                    registroLista.Value =archivo.idArchivo.ToString();
                    registroLista.Selected = false;
                    ComboBoxEliminar2.Items.Add(registroLista);
                }          

            }
            else
            {
                ComboBoxEliminar2.Items.Clear();
                ListItem registroLista = new ListItem("- Selecciona -", "0");
                ComboBoxEliminar2.Items.Add(registroLista);

            }
        }



        protected void ComboBoxEliminar2_SelectedIndexChanged(object sender, EventArgs e)
        {

        }



        protected void ButtonEliminar_Click(object sender, EventArgs e)
        {
                      
            if ((!ComboBoxEliminar1.SelectedValue.Equals("0")) && (!ComboBoxEliminar2.SelectedValue.Equals("0")))
            {
                OperacionesPdf archivoPdf = new OperacionesPdf();
                SqlServerArchivoPdf sqlServerArchivo = new SqlServerArchivoPdf();
                Profesor profesor = (Profesor)Session["Usuario"];
                List<OperacionesPdf> miOperacionPdf = sqlServerArchivo.ConsultarNombreArchivoPdf(profesor, int.Parse(ArchivoPdf_Principal.Seccion), ComboBoxEliminar1.SelectedValue);
                FileInfo ruta = archivoPdf.buscarRuta(miOperacionPdf, int.Parse(ComboBoxEliminar2.SelectedValue));

                FileInfo rutaFinal = new FileInfo(MapPath(ruta.ToString() + ComboBoxEliminar2.SelectedItem.Text.ToString()));
                String tamañoArchivo = rutaFinal.Length.ToString();
                float tamañoArchivo2 = ((int.Parse(tamañoArchivo)) / 1024);
                float tamañoActual = profesor.EspacioUtilizado - tamañoArchivo2;
                profesor.EspacioUtilizado = tamañoActual;
                rutaFinal.Delete();


                SqlServerArchivoPdf archivopdf = new SqlServerArchivoPdf();
                archivopdf.EliminarArchivoPdf(int.Parse(ComboBoxEliminar2.SelectedValue), tamañoArchivo2, profesor);
                Response.Redirect("ArchivoPdf.aspx");
            }
            else
            {
                mensaje.Text = "Debe seleccionar una opción";
            }            
            
        }

                      
    }
}